package asia.kalin.controller;

import asia.kalin.domain.dto.UpdatePassWordDTO;
import asia.kalin.domain.dto.UserInfoDTO;
import asia.kalin.service.IUserInfoService;
import asia.kalin.domain.ao.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

/**
 * @Author: Kalin
 * @Name：UserController
 * @Date: 2025/3/10
 * @description
 */

@RestController
@RequestMapping("/user")
@RequiredArgsConstructor
public class UserController {

    private final IUserInfoService userInfoService;

    /**
     * 注册用户信息
     * @param userInfoDTO
     * @return Result
     */
    @PostMapping("/register")
    public Result userRegister(@RequestBody UserInfoDTO userInfoDTO){
        return userInfoService.register(userInfoDTO);
    }

    /**
     * 用户登录
     * @param userInfoDTO
     * @return Result
     */
    @PostMapping("/login")
    public Result userLogin(@RequestBody UserInfoDTO userInfoDTO){
        return userInfoService.login(userInfoDTO);
    }

    /**
     * 修改用户信息
     * @param userInfoDTO
     * @return Result
     */
    @PostMapping("/updateInfo")
    public Result userUpdateInfo(@RequestBody UserInfoDTO userInfoDTO){
        return userInfoService.userUpdateInfo(userInfoDTO);
    }

    /**
     * 修改用户密码
     * @param updatePassWordDTO
     * @return Result
     */
    @PostMapping("/updatePW")
    public Result userUpdatePW(@RequestBody UpdatePassWordDTO updatePassWordDTO){
        return userInfoService.userUpdatePW(updatePassWordDTO);
    }

    /**
     * 给到用户信息
     * @return
     */
    @GetMapping("/getUserInfo")
    public Result getUserInfo(){
        return userInfoService.getUserInfo();
    }

}
